# -*- coding:utf-8 -*-

#引用正则需要导入的模块
from werkzeug.routing import BaseConverter
from flask import session, jsonify, g
from iHome.utils.response_code import RET
import functools


#定义正则转换器
class RegexConverter(BaseConverter):
    def __init__(self, url_map, *args):
        super(RegexConverter, self).__init__(url_map)
        #父类的正则表达式
        self.regex = args[0]


# 用户登录装饰器
def login_required(f):
    @functools.wraps(f)#如果不使用它进行内层函数错误装饰的话，外界传入的函数的name会被改成下面的内层函数的名字
    def wrapper(*args, **kwargs):
        user_id = session.get("user_id")
        if not user_id:
            return jsonify(errno=RET.SESSIONERR, errmsg="用户未登录")
        else:
            g.user_id = user_id
            return f(*args, **kwargs)

    return wrapper
